home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / msdos / css / source / init.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-10-19  |  1.5 KB  |  73 lines

  1.  
  2. #include  <dos.h>
  3. #include <glib.h>
  4.  
  5. int    _DENGEROUS; /* 致命的エラー・フラグ   0 なら正常 */
  6.  
  7. void far *handler()
  8. {
  9.   /* デバック用 * /
  10.     color(7, 0);
  11.     locate(0, 24, CON);
  12.     printf("致命的エラーが発生しました。");
  13.     getch();
  14.     locate(0, 24, CON);
  15.     printf("                            ");
  16.   */
  17.     _DENGEROUS = 2;
  18.     _hardretn(2); /* 中止の場合は 2 */
  19. }
  20.  
  21. /* 機器情報 */
  22. char  machineinf[16];
  23. int   TOWNS; /* もしTOWNSなら 1 その他は 0 */
  24.  
  25. /* next func use */
  26. int   sw1,  chrcnt;
  27. char  kstr[50];
  28.  
  29. void init()
  30. {
  31.    unsigned   moji;
  32.    int        sw2, chrcnt2;
  33.    char       kstr2[2];
  34.  
  35.    _DENGEROUS = 0;    /* 致命的エラー・フラグ・クリヤー */
  36.    _harderr((void (far *)())handler); /* 致命的エラー処理ルーチン・セット */
  37.  
  38.    ETC_rdmachineinf(machineinf); /* 機器情報 */
  39.    if ((machineinf[0] & 0xf7) == 0x51) TOWNS = 1; /* TOWNS なら 機種IDは 0x51 */
  40.    else                                TOWNS = 0;
  41.    
  42.    kstr[0] = 50-1;
  43.    sw2 = 0; moji = 0x7f; chrcnt2 = 1;
  44.    strcpy(kstr2, "\7");
  45.    KYB_rdasign(&sw1, moji, &chrcnt, kstr);
  46.    KYB_asign(sw2, moji, chrcnt2, kstr2);
  47.  
  48.    gopen();
  49.    GDS_setcompat(1); /* R50 モード */
  50.    tpalet();
  51.    MOS_start();
  52.  
  53. }
  54.  
  55.  
  56. void deinit()
  57. {
  58.    unsigned  moji;
  59.    /* int       i, bcl[16]; */
  60.  
  61.    locate(0,0,CON);
  62.    color(7,0);
  63.  
  64.    MOS_end();
  65.    rpalet();
  66.    GDS_setcompat(0); /* 16B 互換モード */
  67.    gclose();
  68.  
  69.    moji = 0x7f;
  70.    KYB_asign(sw1, moji, chrcnt, kstr+1);
  71. }
  72.  
  73.